有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在倒计时和打印循环时遇到问题

所以我需要我的代码在3个用户输入上以增量打印出来,我有第二个java文件使用点符号来执行方法。所以它应该是这样运行的

拾取>;起始值-拾取增量值-拾取>;终值 所有这些都是用户输入,如果起始值>;然后以用户输入增量从起始值开始计算结束值。但如果结束

import java.util.Scanner;

public class logic  {

    public static void main(String [] args) {

    //new scanner
    Scanner input = new Scanner(System.in);

    //Data
      char ch = 0;
      int start = 0; 
      int end = 0;
      int inc = 0;
      String printStr = "";
      final int SENTINEL = -1;
      String menu ="Looping (Demo)" +
                   "\nStart Value\t [S]" +
                   "\nIncrement value  [I]" +
                   "\nEnd Value\t [E]" + 
                   "\nFor Looping\t [F]" +
                   "\nQuit\t\t [Q]" +
                   "\nEnter Option > "; 

    while(ch != SENTINEL) {

    switch(ch) {
        case 'S':
        case 's':

            start = UtilsDM.readInt("Enter loop start value: ", false);      
            break;

        case 'I':
        case 'i':        
            inc = UtilsDM.readInt("Enter loop increment value: ", false);          
            break;   

        case 'E':
        case 'e':
            end = UtilsDM.readInt("Enter loops end value: ", false);
            break;      

        case 'F':
        case 'f': 
            if(start <= end){
                for (int i=start; i<=end; i+=inc) {                     
                    System.out.print(i + " ");
                }//end loop +
            }//end if
            else if(start >= end){ 
                for (int i=end; i<=start; i-=inc) {                
                    System.out.print(i + " ");                    
                }//end loop -
            }//end else if

            System.out.println("\n");                  
            break; 

        case 'Q':
        case 'q':
            System.out.println("Terminating upon user command.");
            System.exit(0);
            break; 

        default:
            System.out.println("Unrecognized character");
            break;
    }//end switch

    ch =  UtilsDM.readChar(menu, false);
   }//end loop







    //computations, algorithms

    //outputs, formatting, display
    } //end main  

}//end class

共 (1) 个答案

  1. # 1 楼答案

    将案例“F”更改为以下内容,我已对这些更改进行了评论:-

     case 'F':
     case 'f': 
            if(start < end || (start < 0 && end < 0 && end > start))  // start < end or start = -3 and end = -7
            {
                for (int i=start; i<=end; i+=inc) 
                {                     
                    System.out.print(i + " ");
                }
            }
            else if(start > end || (start < 0 && end < 0 && start > end))  //  if start = - 7 and end = -3
            { 
                for (int i=end; i>=start; i-=inc) // should be greater than 
                {                
                    System.out.print(i + " ");                    
                }
            }
            else if(start == end)
            {
              System.out.println(end);
            }